The present invention relates to methods and apparatus for transferring data within a multi-processing system.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications involve real-time, multimedia functionality. Graphics applications are among those that place the highest demands on a processing system because they require such vast numbers of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results. These applications require extremely fast processing speeds, such as many thousands of megabits of data per second. While some processing systems employ a single processor to achieve fast processing speeds, others are implemented utilizing multi-processor architectures. In multi-processor systems, a plurality of sub-processors can operate in parallel (or at least in concert) to achieve desired processing results.
A conventional processing system may employ direct memory access (DMA) technology to transfer data from one memory to another device, which may be another memory. A DMA command queue may be used to store pending DMA commands, as it may take a relatively long time to complete a DMA transfer. Unfortunately, the inability for the application program that issued the DMA command to know the status of the DMA transfer leads to inefficient processing throughput.